
#ifndef _METALWIDGETS_
#define _METALWIDGETS_

#include <iostream>
#include <string>
#include <lgi/widget.hpp>

using namespace std;
using namespace net::lliurex::lgi;

class MetalWidgets
{
	public:
		static void LoadResources();
};

class LCD: public Widget
{
	public:
		string text1;
		string text2;
		
		LCD(int x,int y);
		void Draw(cairo_t * cairo);
		

};

class LED : public Widget
{
	public:
		bool status;
		string label;
		
		LED(int x,int y,string label);
		void Draw(cairo_t * cairo);
	
};


class Manifold: public Widget
{
	public:
		float value;
		
		Manifold(int x,int y);
		void Draw(cairo_t * cairo);
		
};

class Panic: public Widget
{
	public:
	
		Panic(int x,int y);
		void Draw(cairo_t * cairo);
	
};

class Button: public Widget
{
	public:
		bool status;
		string text;
		
		Button(int x,int y,string text);
		void Draw(cairo_t * cairo);
		
};

class Slider: public Widget
{
	public:
		float value;
		string text;
		bool grab;
		float grab_y;
		float grab_value;
		
		Slider(int x,int y,string text);
	
		void Draw(cairo_t * cairo);	
		void OnMouseDown(MouseDownEvent * event);
		void OnMouseUp(MouseUpEvent * event);
		void OnMouseMove(MouseMoveEvent * event);
		
};

class TvScreen: public Widget
{
	public:
		float vx;
		float vy;
		string text;
		
		TvScreen(int x,int y,string text);
		void Draw(cairo_t * cairo);
	
};

class Label: public Widget
{
	public:
		string text;
	
		Label(int x, int y,string text);
		void Draw(cairo_t * cairo);
};

#endif
